load("zh.survey.redux.clean.Rda")Reproduction of H1 and H2 for Kübler et al. 2025
Applied Methods · MA Public Administration
Introduction
In this document, you will reproduce some of the analyses presented in Table 1 of the paper Who supports deliberative mini-publics in a context of direct democracy? The role of trust and dissatisfaction, by Kübler et al. (2025).
Table 1 contains contains ten models, with two different dependent variables.
We will focus on models used to test H1 and H2.
Your first task is to evaluate how the models are different and link it to the specific expectations of the paper.
How are the model different?
Specificities of the two models for H1
In addition to control variable, it adds a variable indicating the trust R’s have on other citizens.
Specificities of the two models for H2
In addition to control variables, it adds a variable on R’s internal efficacy.
Load the data
In this part, you should add a R chunck that loads the data.
Since the data is in R format (.Rda), you should use the function load()
Variables in the dataset
- F19_gutes_mittel_bp –> DPM as means of participation
- F16_04_reform_gemeinde_versammlung_los –> DMPs to replace municipal assemblies
- S01_alter –> R’s age
- S02_geschlecht_weiblich –> Gender (Female)
- S12_openness –> Personality trait (openness)
- S05_schweizer –> Swiss Citzenship
- S03_ausbildung_univ –> University degree
- F10_lrscale –> Left-right self position
- F23_dmp_informed –> Familiarity with DPM
- F18_01_meinung_bp_gute_entscheidungen –> Trust in other citizens
- F09_internal_efficacy –> Internal effecacy
With this information, you now have to run four models to reproduce the analyses for H1 and H2 presented in Table 1.
Warnings: In the paper, the authors use weights, thus the coefficients values will slghtly differ in our analyses. If you want you can add weigths
H1
mod1.1 <- lm(F19_gutes_mittel_bp~
S01_alter+
S02_geschlecht_weiblich +
S12_openness +
S05_schweizer +
S03_ausbildung_univ +
F10_lrscale +
F23_dmp_informed +
F18_01_meinung_bp_gute_entscheidungen,
data = zh.survey.redux)
mod1.2 <- lm(F16_04_reform_gemeinde_versammlung_los~
S01_alter+
S02_geschlecht_weiblich +
S12_openness +
S05_schweizer +
S03_ausbildung_univ +
F10_lrscale +
F23_dmp_informed +
F18_01_meinung_bp_gute_entscheidungen,
data = zh.survey.redux)H2
mod2.1 <- lm(F19_gutes_mittel_bp~
S01_alter+
S02_geschlecht_weiblich +
S12_openness +
S05_schweizer +
S03_ausbildung_univ +
F10_lrscale +
F23_dmp_informed +
F09_internal_efficacy,
data = zh.survey.redux)
mod2.2 <- lm(F16_04_reform_gemeinde_versammlung_los~
S01_alter+
S02_geschlecht_weiblich +
S12_openness +
S05_schweizer +
S03_ausbildung_univ +
F10_lrscale +
F23_dmp_informed +
F09_internal_efficacy,
data = zh.survey.redux)Regression table
Use Stargazer to provide a table with the results of the fours models.
Hint: You can simply run stargazer(model1, model2, model3) and it will provide a regression table.
stargazer(mod1.1,
mod1.2,
mod2.1,
mod2.2,
type = "text",
font.size = "small",
column.sep.width = "3pt",
omit.stat=c("LL","ser","f"),
no.space=TRUE,
star.cutoffs = c(0.05, 0.01, 0.001),
dep.var.labels = rep(c("DPM mean of participation",
"DPM replac mun assemblies"), 2),
column.labels = c("H1: Trust - 1st DV",
"H1: Trust - 2nd DV",
"H2: Engagement - 1st DV",
"H2: Engagement - 2nd DV"),
covariate.labels = c("age",
"gender female",
"personality trait openness",
"citizenship (Swiss)",
"university education",
"left-right self-placement",
"familiarity with DMP",
"trust in other citizens",
"internal efficacy"))
==================================================================================================================================
Dependent variable:
-------------------------------------------------------------------------------------------------------
DPM mean of participation DPM replac mun assemblies DPM mean of participation DPM replac mun assemblies
H1: Trust - 1st DV H1: Trust - 2nd DV H2: Engagement - 1st DV H2: Engagement - 2nd DV
(1) (2) (3) (4)
----------------------------------------------------------------------------------------------------------------------------------
age -0.015*** -0.012*** -0.011*** -0.011***
(0.001) (0.001) (0.001) (0.001)
gender female 0.076 0.013 0.066 -0.031
(0.044) (0.035) (0.050) (0.037)
personality trait openness 0.107*** 0.015 0.103*** 0.033
(0.024) (0.019) (0.027) (0.020)
citizenship (Swiss) -0.215*** -0.466*** -0.283*** -0.462***
(0.057) (0.047) (0.065) (0.048)
university education 0.00001 -0.075* -0.132* -0.063
(0.045) (0.037) (0.053) (0.039)
left-right self-placement -0.067*** -0.026*** -0.069*** -0.028***
(0.009) (0.008) (0.011) (0.008)
familiarity with DMP 0.236*** 0.023 0.371*** 0.106*
(0.058) (0.047) (0.066) (0.048)
trust in other citizens 0.491*** 0.169***
(0.015) (0.013)
internal efficacy 0.122*** -0.077***
(0.027) (0.020)
Constant 3.172*** 2.305*** 4.641*** 3.115***
(0.136) (0.111) (0.156) (0.115)
----------------------------------------------------------------------------------------------------------------------------------
Observations 3,616 3,614 3,626 3,638
R2 0.263 0.120 0.063 0.080
Adjusted R2 0.261 0.118 0.061 0.077
==================================================================================================================================
Note: *p<0.05; **p<0.01; ***p<0.001
Plot predictions
Plot the predicted effect of trust on the R’s evaluation of DPM as means of participation.
plot(ggpredict(mod1.1, "F18_01_meinung_bp_gute_entscheidungen"))+
labs(x="Trust in other citizens",
y="Predicted support for DPM",
title="")Coefficient plot
Use your knowledge to plot the coeficients of the different cofounders for the first model testing H1.
data_coefs <- data.frame(coefs=summary(mod1.1)[["coefficients"]][2:9,1],
sd = summary(mod1.1)[["coefficients"]][2:9,2])
ggplot()+
geom_point(data_coefs, mapping = aes(x= coefs,
y = c("age",
"gender female",
"personality trait openness",
"citizenship (Swiss)",
"university education",
"left-right self-placement",
"familiarity with DMP",
"trust in other citizens")))+
geom_errorbarh(data_coefs, mapping = aes(xmin = coefs - 1.96*sd,
xmax = coefs + 1.96*sd,
y = c("age",
"gender female",
"personality trait openness",
"citizenship (Swiss)",
"university education",
"left-right self-placement",
"familiarity with DMP",
"trust in other citizens")), width = .1)+
labs(x= "estimates",
y = "covariates")+
geom_vline(aes(xintercept = 0))+
theme_minimal()